Tree Model এবং Object Model এর মধ্যে পার্থক্য

Java Technologies - জ্যাকসন (Jackson) - JSON Tree Model ব্যবহার
191

Jackson একটি জনপ্রিয় Java লাইব্রেরি যা JSON ডেটা প্রক্রিয়াকরণের জন্য ব্যবহৃত হয়। Jackson দুটি প্রধান পদ্ধতির মাধ্যমে JSON ডেটা ম্যানিপুলেট করতে দেয়: Tree Model এবং Object Model। এদের প্রত্যেকটির নিজস্ব বৈশিষ্ট্য এবং ব্যবহারক্ষেত্র রয়েছে। নিচে এদের মধ্যে প্রধান পার্থক্য এবং উদাহরণ দেওয়া হলো।


1. Tree Model

Tree Model JSON ডেটাকে একটি tree-like structure-এ রূপান্তরিত করে। এতে JSON ডেটা DOM (Document Object Model) এর মতো নোড আকারে উপস্থাপিত হয়, যেখানে JSON ডেটা dynamic এবং non-typed হয়।

বৈশিষ্ট্য:

  • JSON ডেটা dynamic এবং flexible
  • JSON স্ট্রাকচার পরিবর্তন এবং নেভিগেট করার সুবিধা।
  • টাইপ সেফটি নেই (type-safe নয়)।
  • ছোট বা অজানা স্ট্রাকচারের JSON ডেটা প্রক্রিয়াকরণের জন্য কার্যকর।
  • JsonNode ক্লাসের মাধ্যমে ডেটা পরিচালিত হয়।

Tree Model উদাহরণ:

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;

public class TreeModelExample {
    public static void main(String[] args) throws Exception {
        String json = """
                      {
                          "name": "John Doe",
                          "age": 30,
                          "address": {
                              "city": "New York",
                              "zip": "10001"
                          }
                      }
                      """;

        ObjectMapper mapper = new ObjectMapper();

        // JSON কে Tree Model এ রূপান্তর
        JsonNode rootNode = mapper.readTree(json);

        // ডেটা নেভিগেশন
        String name = rootNode.get("name").asText();
        int age = rootNode.get("age").asInt();
        String city = rootNode.get("address").get("city").asText();

        System.out.println("Name: " + name);
        System.out.println("Age: " + age);
        System.out.println("City: " + city);
    }
}

আউটপুট:

Name: John Doe
Age: 30
City: New York

2. Object Model

Object Model JSON ডেটাকে সরাসরি Java Objects এ map করে। এটি type-safe এবং strongly-typed

বৈশিষ্ট্য:

  • JSON ডেটা সরাসরি Java ক্লাসে bind হয়।
  • Type-safe এবং well-structured
  • Pre-defined ডেটা স্ট্রাকচার থাকা দরকার।
  • ডেটার সাথে কাজ করা সহজ, কারণ এটি সরাসরি Java Objects এ রূপান্তরিত হয়।
  • Serialization এবং Deserialization সহজতর হয়।

Object Model উদাহরণ:

import com.fasterxml.jackson.databind.ObjectMapper;

public class ObjectModelExample {
    public static void main(String[] args) throws Exception {
        String json = """
                      {
                          "name": "John Doe",
                          "age": 30,
                          "address": {
                              "city": "New York",
                              "zip": "10001"
                          }
                      }
                      """;

        ObjectMapper mapper = new ObjectMapper();

        // JSON কে Java Object এ রূপান্তর
        Person person = mapper.readValue(json, Person.class);

        // Java Object এর ডেটা প্রিন্ট করা
        System.out.println("Name: " + person.getName());
        System.out.println("Age: " + person.getAge());
        System.out.println("City: " + person.getAddress().getCity());
    }
}

// Java Class Definitions
class Person {
    private String name;
    private int age;
    private Address address;

    // Getters and Setters
    public String getName() { return name; }
    public void setName(String name) { this.name = name; }
    public int getAge() { return age; }
    public void setAge(int age) { this.age = age; }
    public Address getAddress() { return address; }
    public void setAddress(Address address) { this.address = address; }
}

class Address {
    private String city;
    private String zip;

    // Getters and Setters
    public String getCity() { return city; }
    public void setCity(String city) { this.city = city; }
    public String getZip() { return zip; }
    public void setZip(String zip) { this.zip = zip; }
}

আউটপুট:

Name: John Doe
Age: 30
City: New York

Tree Model vs Object Model: পার্থক্য

ফিচারTree ModelObject Model
ব্যবহারিক কাঠামোJSON ডেটাকে নোড হিসেবে উপস্থাপন করে।JSON ডেটা সরাসরি Java Objects এ ম্যাপ করে।
ডেটা টাইপDynamic এবং Non-typed।Type-safe এবং Strongly-typed।
ডেটা প্রসেসিংUnknown বা Flexible JSON স্ট্রাকচারের জন্য কার্যকর।Pre-defined স্ট্রাকচারের জন্য কার্যকর।
Performanceতুলনামূলক ধীর, কারণ নেভিগেশনের প্রয়োজন।দ্রুত, কারণ সরাসরি Object এ কাজ করে।
API ClassJsonNode (Tree-like structure)।Custom Java POJO Classes।
ব্যবহার ক্ষেত্রDynamic বা জটিল JSON প্রক্রিয়াকরণ।Simple এবং Pre-defined JSON স্ট্রাকচার।

  • Tree Model: অজানা বা ডায়নামিক JSON ডেটার জন্য ব্যবহার করুন।
  • Object Model: Type-safe এবং নির্ধারিত ডেটা স্ট্রাকচারের JSON প্রক্রিয়াকরণের জন্য আদর্শ।

আপনার প্রয়োজন অনুসারে সঠিক মডেল নির্বাচন করা গুরুত্বপূর্ণ।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...